using Microsoft.Phone.Controls.Maps.Design;
using System;
using System.ComponentModel;
namespace Microsoft.Phone.Controls.Maps
{
	[TypeConverter(typeof(PositionOriginConverter))]
	public struct PositionOrigin
	{
		private double x;
		private double y;
		public static readonly PositionOrigin TopLeft = new PositionOrigin(0.0, 0.0);
		public static readonly PositionOrigin TopCenter = new PositionOrigin(0.5, 0.0);
		public static readonly PositionOrigin TopRight = new PositionOrigin(1.0, 0.0);
		public static readonly PositionOrigin CenterLeft = new PositionOrigin(0.0, 0.5);
		public static readonly PositionOrigin Center = new PositionOrigin(0.5, 0.5);
		public static readonly PositionOrigin CenterRight = new PositionOrigin(1.0, 0.5);
		public static readonly PositionOrigin BottomLeft = new PositionOrigin(0.0, 1.0);
		public static readonly PositionOrigin BottomCenter = new PositionOrigin(0.5, 1.0);
		public static readonly PositionOrigin BottomRight = new PositionOrigin(1.0, 1.0);
		public double X
		{
			get
			{
				return this.x;
			}
			set
			{
				this.x = value;
			}
		}
		public double Y
		{
			get
			{
				return this.y;
			}
			set
			{
				this.y = value;
			}
		}
		public PositionOrigin(double horizontalOrigin, double verticalOrigin)
		{
			this.x = horizontalOrigin;
			this.y = verticalOrigin;
		}
		public override int GetHashCode()
		{
			return this.x.GetHashCode() ^ this.y.GetHashCode();
		}
		public override bool Equals(object obj)
		{
			return obj is PositionOrigin && this.Equals((PositionOrigin)obj);
		}
		public bool Equals(PositionOrigin origin)
		{
			return this.x == origin.x && this.y == origin.y;
		}
		public static bool operator ==(PositionOrigin origin1, PositionOrigin origin2)
		{
			return origin1.Equals(origin2);
		}
		public static bool operator !=(PositionOrigin origin1, PositionOrigin origin2)
		{
			return !origin1.Equals(origin2);
		}
	}
}
